The development of the EDVAC computer system of 1948 is often cited as the beginning of the computer era. Since that time, computer systems have evolved into extremely sophisticated devices, including complex combinations of hardware and software. Computer systems have been applied to a host of different applications. One such application is order processing in a production environment. When different items on a production line must be produced in different configurations, a computer system can be used to assure the items are produced according to the desired specifications.
One example of a production line that typically uses a computer system to track and control order processing is in the manufacturing of computer systems. Modern computer systems are relatively modular. Building a computer system requires assembling various hardware components together and loading various software components into the system, typically by installing the software components on a hard disk drive. A great number of different configurations are possible due to the large number of hardware and software components that may be provided. This results in a relatively complex manufacturing environment that must be able to accommodate the many possible computer configurations.
System configurator software has been developed by some companies to process orders for computer systems. Note that the terms "system configurator" and "order processor" are used interchangeably herein. System configurator software has successfully automated many tasks that were previously done manually during the manufacture of a computer system. However, the specific needs of one computer manufacturer may differ from the needs of a different computer manufacturer, or from the needs of the same manufacturer at a different location or on a different production line. System configurator software is generally developed to provide the exact functionality desired to process orders for the targeted production line. This results in fully custom software that is not easily used for different production lines. A large computer manufacturer may end up with several different system configurators (i.e., order processors) that perform different functions and combinations of functions, with no common interfaces or code, resulting in production systems that must be separately maintained. This means that a change to one system configurator that improves the performance of a production line must be implemented independently for other system configurators, resulting in a great deal of work to make a change effective on several different production lines.
While the discussion above concentrates on system configurators for a computer manufacturer, other system configurators exist for processing orders in a vast number of different environments. For example, many different and diverse manufacturing lines use system configurators to process orders to assure the manufacturing process produces the end item according to the specifications in an order. Each different application typically has its own custom, dedicated system configurator that is not easily adapted to any new or different application. Without a mechanism that can be readily customized and extended to provide a system configurator (i.e., order processor) that has the desired functionality, the time required to program and maintain system configurator software will be excessively long and expensive.